// 该文件专门用于创建整个应用的路由器
import VueRouter from 'vue-router'
// 引入组件
import About from '../pages/About'
import Home from '../pages/Home'
import News from '../pages/News'
import Message from '../pages/Message'
import Detail from '../pages/Detail'

// 创建并暴露一个路由器
const router= new VueRouter({
    // mode:'history',//默认模式是hash
    routes:[
        {
            name:'guanyu',//给路由命名
            path:'/about',
            component:About,
            meta:{title:'关于',isAuth:true}
        },
        {
            name:'zhuye',
            path:'/home',
            component:Home,
            meta:{title:'主页'},
            children:[
                {
                    name:'xinwen',
                    path:'news',
                    component:News,
                    meta:{isAuth:true,title:'新闻'},
                    /* beforeEnter:(to,from,next)=>{
                        console.log('独享路由守卫',to,from)
                    if(to.meta.isAuth){//判断当前路由是否需要进行权限控制
                    if(localStorage.getItem('school')==='atguigu'){//权限控制的具体规则
                        next()//放行
                    }
                    else{
                        alert('学校名不对')
                    }
                    }
                    else{next()}
                    } */
                },  
                {
                    name:'xiaoxi',
                    path:'message',
                    component:Message,
                    meta:{isAuth:true,title:'消息'},
                    children:[
                        {
                            name:'xiangqing',//给路由命名
                            path:'detail',
                            // path:'detail/:id/:title',//路由的params参数占位，声明接收params参数
                            component:Detail,
                            meta:{isAuth:true,title:'详情'},
                            //props的第一种写法，值为对象，该对象中的所有key-value都会议props的形式传递给Detail组件
                            // props:{a:1,b:'hello'} 

                            //props的第二种写法，值为布尔值，若布尔值为真，就会把该路由组件收到的所有params参数，以props的形式传给Detail组件
                            // props:true

                            // props的第三种写法，值为函数(可以ES6 解构赋值简写)
                            props($route){
                                return{id:$route.query.id,title:$route.query.title}
                            }
                          /*   props({query}){
                                return {id:query.id,title:query.title}
                            } */
                            /* props({query:{id,title}}){
                                return {id,title}
                            } */
                        }

                    ]
                }
            ]
        }
    ]
})
// 全局前置路由守卫--每次路由切换之前调用，或者初始化的时候调用
/* router.beforeEach((to,from,next)=>{
console.log('前置路由守卫',to,from)
// if(to.path==='/home/news' || to.path==='/home/message')
if(to.meta.isAuth){//判断当前路由是否需要进行权限控制
    if(localStorage.getItem('school')==='atguigu'){//权限控制的具体规则
        next()//放行
    }
    else{
        alert('学校名不对')
    }
}
else{
    next()
}

})
*/
// 全局后置路由守卫--每次路由切换之后调用，或者初始化的时候调用
router.afterEach((to,from)=>{
    console.log('后置路由守卫',to,from)
    document.title=to.meta.title || '硅谷系统'//修改网页的title
}) 

export default router